<?php

declare(strict_types=1);

namespace App\Services;

use App\Helpers\Auth;
use GUMP;
use Riverside\Express\Application;

/**
 * Clase base para todos los servicios.
 */
abstract class BaseService
{
    /**
     * Constructor heredado de la clase.
     */
    public function __construct(private Application $app) {}

    /**
     * Obtiene una instancia de la aplicación.
     */
    protected function app(): Application
    {
        return $this->app;
    }

    /**
     * Obtiene una instancia del validador.
     */
    protected function gump(): GUMP
    {

        return $this->app->local('gump');
    }

    /**
     * Short had para obtener la información del usuario autenticado.
     */
    protected function userAuth(): ?array
    {
        return $this->app->local(Auth::getVarname());
    }
}
